
bool isValid(char * s){
    int len = strlen(s);
    int i;
    int top=-1;
    char* stack = (char*)malloc(sizeof(char)*10000);
    if(len%2!=0)
    {
        return false;
    }
    for(i=0;i<len;i++)
    {
        if(s[i]=='[' || s[i]=='{' || s[i]=='(')
        {
            top++;
            switch(s[i])
            {
                case '{':
                    stack[top]='}';
                    break;
                case '[':
                    stack[top]=']';
                    break;
                case '(':
                    stack[top]=')';
                    break;
            }
        }
        else
        {
            if(top<0){
                return false;
            }
            if(s[i]!=stack[top])
            {
                return false;
            }
            else
            {
                top--;
            }
        }
    }
    if(top!=-1)
    {
        return false;
    }
    return true;
}